﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyVoteMVC.Data;
using MyVoteMVC.Domain;
using MyVoteMVC.Common;
using MyVoteMVC.Common.Objects;
using MyVoteMVC.Data.Repositories;


namespace MyVoteMVC.Service
{
    public interface IAuserService : IDisposable
    {      
        //增加用户
        int AddUser(string userEmail, string userRealName, string userPassword, int IsAD, int isLeader);
        //编辑用户 userEmailName 为被编辑的用户的EmailName，aUserEmailName为编辑者
        bool EditUser(string userEmailName, string userName, string realName, string aUserEmailName);
        bool EditUser(string userEmailName, string realName, int isAD, int isLeader);
        bool EditUser(string userEmailName, string realName, int isAD, int isLeader,string userPassword);
        //删除用户
        bool DeleteUser(string userEmailName);
        //用户提权 iType 0 为 普通用户，1为管理员
        bool SetPermissions(string userEmailName, string aUserEmailName, int iType);
        // iType 0 为 非领导，1为领导
        bool SetLeaderPermissions(string userEmailName, string aUserEmailName, int iType);
        //获取用户列表
        IList<VT_Users> GetALLUsersList();
        //获取普通用户列表
        IList<VT_Users> GetOrdinaryUsersList();
        //获取领导用户列表
        IList<VT_Users> GetLeaderUsersList();
        //获取管理员列表
        IList<VT_Users> GetAdministratorList();
        //获取某个人的票列表
        IList<VT_Tickets> GetUersTickets(string userID);
        //获取某个活动的票
        IList<VT_Tickets> GetActivityTickets(string activityID);

        VT_Tickets GetUersTickets(string userID, string activityID);
        //模糊查找
        IList<VT_Users> FindUsersList(string name);

        VT_Users GetUserByID(string strUserID);

        VT_Users GetUserByEmail(string strEmail);

    }
}
